class Solution {
public:
    long long countInterestingSubarrays(vector<int>& nums, int modulo, int k) {
        long long ret=0,cnt=0;
        unordered_map<int,int> has;
        vector<int> a(nums.size()+1),f(nums.size()+1);
        for(int i=1;i<=nums.size();i++)
        {
            if(nums[i-1]%modulo==k)
                a[i]=1;
        }
        for(int i=1;i<=nums.size();i++)
        {
            f[i]=f[i-1]+a[i];
        }
        has[0]=1;
        for(int i=1;i<=nums.size();i++)
        {

            ret+=has[(f[i]-k+modulo)%modulo];
            has[f[i]%modulo]++;
        }
        return ret;
    }
};
